
namespace MinCultura.Sipa.AgentesArtes
{
    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Collections;
    using Common;
    using SystemFrameworks;
    using Microsoft.ApplicationBlocks.Data;



    /// <summary>
    /// Clase de acceso a datos para la entidad ART_DETALLE_NIVEL_EDUCATIVO
    /// </summary>

    public class DetalleNivelEducativo
    {


        #region propiedades

        private string _cadenaConexion;

        public string ConnectionString
        {
            get { return _cadenaConexion; }
            set { _cadenaConexion = value; }
        }

        #endregion

        #region Private Data Access Atributes
        private const String NIV_ID_PARAM = "@NIV_ID";
        private const String AGE_ID_PARAM = "@AGE_ID";
        private const String DET_GRADO_PARAM = "@DET_GRADO";
        private const String DET_TITULO_PARAM = "@DET_TITULO";
        private const String DET_ENTIDAD_PARAM = "@DET_ENTIDAD";
        private const String DET_ANO_PARAM = "@DET_ANO";
        #endregion Private Data Access Atributes

        /// <summary>
        /// Constructor de la clase ARTDETALLENIVELEDUCATIVO
        /// </summary>
        public DetalleNivelEducativo(string strCadenaConecxion)
        {
            ConnectionString = strCadenaConecxion;
        }

        public MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData BuscarDetalleNivelEducativo()
        {
            MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData response = new MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData();
            SqlHelper.ExecuteDataTable(this.ConnectionString, CommandType.StoredProcedure, "PAS_BUSCAR_ART_DETALLE_NIVEL_EDUCATIVO", response.Tables[0]);
            if (response.Tables[0].Rows.Count == 0)
                return null;
            return response;
        }


        public MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData ConsultarDetalleNivelEducativo(decimal parNIV_ID, decimal parAGE_ID)
        {
            MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData response = new MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData();

            SqlParameter param1 = new SqlParameter(NIV_ID_PARAM, parNIV_ID);
            SqlParameter param2 = new SqlParameter(AGE_ID_PARAM, parAGE_ID);

            SqlParameter[] parameters = { param1, param2 };
            SqlHelper.ExecuteDataTable(this.ConnectionString, CommandType.StoredProcedure, "PAS_CONSULTAR_ART_DETALLE_NIVEL_EDUCATIVO", response.Tables[0], parameters);
            if (response.Tables[0].Rows.Count == 0)
                return null;
            return response;
        }
        public MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData ConsultarDetalleNivelEducativo(decimal parAGE_ID)
        {
            MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData response = new MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData();


            SqlParameter param = new SqlParameter(AGE_ID_PARAM, parAGE_ID);

            SqlParameter[] parameters = { param };
            SqlHelper.ExecuteDataTable(this.ConnectionString, CommandType.StoredProcedure, "PAS_CONSULTAR_ART_DETALLE_NIVEL_EDUCATIVO_ID", response.Tables[0], parameters);
            if (response.Tables[0].Rows.Count == 0)
                return null;
            return response;
        }
        public void AdicionarDetalleNivelEducativo(MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData datos)
        {
            DataTable tabla = datos.Tables[MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData.ART_DETALLE_NIVEL_EDUCATIVO_TABLE];

            try
            {
                foreach (DataRow row in tabla.Rows)
                {

                    SqlParameter param1 = new SqlParameter(NIV_ID_PARAM, row[MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData.NIV_ID_FIELD]);
                    SqlParameter param2 = new SqlParameter(AGE_ID_PARAM, row[MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData.AGE_ID_FIELD]);
                    SqlParameter param3 = new SqlParameter(DET_GRADO_PARAM, row[MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData.DET_GRADO_FIELD]);
                    SqlParameter param4 = new SqlParameter(DET_TITULO_PARAM, row[MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData.DET_TITULO_FIELD]);
                    SqlParameter param5 = new SqlParameter(DET_ENTIDAD_PARAM, row[MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData.DET_ENTIDAD_FIELD]);
                    SqlParameter param6 = new SqlParameter(DET_ANO_PARAM, row[MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData.DET_ANO_FIELD]);
                    SqlParameter[] parameters = { param1, param2, param3, param4, param5, param6 };
                    SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.StoredProcedure, "PAS_ADICIONAR_ART_DETALLE_NIVEL_EDUCATIVO", parameters);

                }


            }
            catch (SqlException sqlEx)
            {
                throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "ART_DETALLE_NIVEL_EDUCATIVO"), sqlEx);
            }
            catch (Exception ex)
            {
                throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorInsertar", "ART_DETALLE_NIVEL_EDUCATIVO"), ex);
            }
        }

        public void ActualizarDetalleNivelEducativo(MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData datos)
        {
            DataTable tabla = datos.Tables[MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData.ART_DETALLE_NIVEL_EDUCATIVO_TABLE];
            try
            {
                foreach (DataRow row in tabla.Rows)
                {

                    SqlParameter param1 = new SqlParameter(NIV_ID_PARAM, row[MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData.NIV_ID_FIELD]);
                    SqlParameter param2 = new SqlParameter(AGE_ID_PARAM, row[MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData.AGE_ID_FIELD]);
                    SqlParameter param3 = new SqlParameter(DET_GRADO_PARAM, row[MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData.DET_GRADO_FIELD]);
                    SqlParameter param4 = new SqlParameter(DET_TITULO_PARAM, row[MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData.DET_TITULO_FIELD]);
                    SqlParameter param5 = new SqlParameter(DET_ENTIDAD_PARAM, row[MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData.DET_ENTIDAD_FIELD]);
                    SqlParameter param6 = new SqlParameter(DET_ANO_PARAM, row[MinCultura.Sipa.DataAccess.AgentesArtes.DetalleNivelEducativoData.DET_ANO_FIELD]);

                    SqlParameter[] parameters = { param1, param2, param3, param4, param5, param6 };
                    SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.StoredProcedure, "PAS_ACTUALIZAR_ART_DETALLE_NIVEL_EDUCATIVO", parameters);
                }
            }
            catch (SqlException sqlEx)
            {
                throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "ART_DETALLE_NIVEL_EDUCATIVO"), sqlEx);
            }
            catch (Exception ex)
            {
                throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorActualizar", "ART_DETALLE_NIVEL_EDUCATIVO"), ex);
            }
        }

        /// <summary>
        /// Elimina un registro de la entidad Artdetalleniveleducativo
        /// </summary>		
        public void EliminarDetalleNivelEducativo(decimal parNIV_ID, decimal parAGE_ID)
        {
            try
            {
                SqlParameter param1 = new SqlParameter(NIV_ID_PARAM, parNIV_ID);
                SqlParameter param2 = new SqlParameter(AGE_ID_PARAM, parAGE_ID);

                SqlParameter[] parameters = { param1, param2 };
                SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.StoredProcedure, "PAS_ELIMINAR_ART_DETALLE_NIVEL_EDUCATIVO", parameters);
            }
            catch (SqlException sqlEx)
            {
                throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "ART_DETALLE_NIVEL_EDUCATIVO"), sqlEx);
            }
            catch (Exception ex)
            {
                throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorEliminar", "ART_DETALLE_NIVEL_EDUCATIVO"), ex);
            }
        }


        public void EliminarDetalleNivelEducativo(decimal parAGE_ID)
        {
            try
            {
                SqlParameter param1 = new SqlParameter(AGE_ID_PARAM, parAGE_ID);

                SqlParameter[] parameters = { param1 };
                SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.StoredProcedure, "PAS_ELIMINAR_ART_DETALLE_NIVEL_EDUCATIVO", parameters);
            }
            catch (SqlException sqlEx)
            {
                throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "ART_DETALLE_NIVEL_EDUCATIVO"), sqlEx);
            }
            catch (Exception ex)
            {
                throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorEliminar", "ART_DETALLE_NIVEL_EDUCATIVO"), ex);
            }
        }
        public void EliminarDetalleNivelEducativo(ArrayList arrIDs)
        {
            SqlConnection objConnection = new SqlConnection(ConnectionString);
            objConnection.Open();
            SqlTransaction objTrans = objConnection.BeginTransaction();

            try
            {
                foreach (object Item in arrIDs)
                {
                    SqlParameter param1 = new SqlParameter(NIV_ID_PARAM, decimal.Parse(Item.ToString())); SqlParameter param2 = new SqlParameter(AGE_ID_PARAM, decimal.Parse(Item.ToString()));
                    SqlParameter[] parameters = { param1, param2 };
                    SqlHelper.ExecuteNonQuery(objTrans, CommandType.StoredProcedure, "PAS_ELIMINAR_ART_DETALLE_NIVEL_EDUCATIVO", parameters);
                }
                objTrans.Commit();
            }
            catch (SqlException sqlEx)
            {
                objTrans.Rollback();
                throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx, "ART_DETALLE_NIVEL_EDUCATIVO"), sqlEx);
            }
            catch (Exception ex)
            {
                objTrans.Rollback();
                throw new ApplicationExceptionManager(Utilidad.TraerMensaje("gmsgErrorEliminar", "ART_DETALLE_NIVEL_EDUCATIVO"), ex);
            }
            finally
            {
                objConnection.Close();
            }
        }
        /*
        public void CambiarEstado(string strIds, string strEstado)
        {
            try
            {	
                SqlParameter param1 = new SqlParameter(STR_ID_PARAM,strIds );
                SqlParameter param2 = new SqlParameter(DET__ESTADO_PARAM,strEstado);
                SqlParameter[] parameters = {param1,param2};					
                SqlHelper.ExecuteNonQuery(this.ConnectionString, CommandType.StoredProcedure, "PAS_CAMBIAR_ESTADO_ART_DETALLE_NIVEL_EDUCATIVO", parameters);
            }
            catch (SqlException sqlEx)
            {						 
                throw new ApplicationExceptionManager(Utilidad.DisplaySqlErrors(sqlEx,"ART_DETALLE_NIVEL_EDUCATIVO"),sqlEx); 
            }
            catch (Exception ex)
            {				 
                if (strEstado.Equals(ApplicationConfiguration.EstadoActivo))
                {
                    throw new ApplicationExceptionManager (Utilidad.TraerMensaje("gmsgAprobarRegistrosExitoso", "ART_DETALLE_NIVEL_EDUCATIVO")); 
                }
                else
                {
                    throw new ApplicationExceptionManager (Utilidad.TraerMensaje("gmsgDesaprobarRegistrosExitoso", "ART_DETALLE_NIVEL_EDUCATIVO")); 
                }
            }			
        }
        */

    }
}

